import java.util.Scanner;
/*假设有一个很长的花坛，一部分地块种植了花，另一部分却没有。可是，花不能种植在相邻的地块上，它们会争夺水源，两者都会死去。
给你一个整数数组 flowerbed 表示花坛，由若干 0 和 1 组成，其中 0 表示没种植花，1 表示种植了花。
另有一个数 n ，能否在不打破种植规则的情况下种入 n 朵花？能则返回 true ，不能则返回 false 。
示例 1：
输入：flowerbed = [1,0,0,0,1], n = 1
输出：true*/
public class Main {
    public static boolean checkaddtree(int[] flower, int tar) {
        int n = flower.length;
        int count = 0;
        for (int i = 0; i < n; i++) {
            if (flower[i] == 0) {
                boolean l = (i == 0 || flower[i - 1] == 0); // 左边是否为0
                boolean r = (i == n - 1 || flower[i + 1] == 0);//右边是否为0
                if (l && r) {
                    flower[i] = 1;
                    count++;
                }
                if (count >= tar) return true;
            }
        }
        return count >= tar;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] flower = new int[n];
        for (int i = 0; i < n; i++) {
            flower[i] = sc.nextInt();
        }
        int tar = sc.nextInt();
        boolean res = checkaddtree(flower, tar);
        System.out.println(res);
    }
}